#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:taotieren


"""
    rpi.gpio 需要 root 权限，板上运行需要使用
    sudo python adc_accelerometer.py
    MCP3008 和 ADXL335 检测方向
    ADC(模数转换器)
        MCP3008 八通道 ADC IC， ADXL335  三轴加速度计
        安装是芯片缺口朝上
        实验前，确保开启 SPI，并且安装好了 Python 的 SPI 库 （pip install spidev）
    此程序只是简单的读取 3 个力，并将其打印出来。
    加速度计最常见的用途就是检测倾斜，
    之所以能够检测倾斜，是因为 Z 轴加速力会受到重力的影响。
    水平：      Z = g      X = 0   Y = 0
    单向倾斜：   Z 稍小于 0 X = 0   Y 稍大于 0
     确保模拟输出不要超过 3.3V
"""

import spidev, time

spi = spidev.SpiDev()
spi.open(0, 0)


def analog_read(channel):
    r = spi.xfer2([1, (8 + channel) << 4, 0])
    adc_out = ((r[1] & 3) << 8) + r[2]
    return adc_out


while True:
    x = analog_read(0)
    y = analog_read(1)
    z = analog_read(2)
    # if 0: 或 if 1: 使能此处
    if 0:
        print("X = %d\tY = %d\tZ = %d" % (x, y, z))
        time.sleep(1)
    # 验证上面的检测倾斜的理论
    else:
        if x < 450:
            print("Left")
        elif x > 550:
            print("Right")
        elif y < 450:
            print("Back")
        elif y > 550:
            print("Forward")
        time.sleep(0.2)
